"""
字典的创建与查找
字典类似于 java数据结构的 HashMap
"""

# 1. 字典的创建
a = {}  # 空的字典
print(type(a), a)
# 键值对的方式初始化: key: value
a = {"id": 1,
     "name": "张玉婷",
     2: 5,
     }
print(type(a), a)
# 如果不是键值对的方式初始化, 就不是字典, 是一个 'set' 集合
c = {1, 2, 'hello', True}
print(type(c), c)
b = dict()
print(type(b), b)
print("-------------------------------------")

# 2. 字典查找 key --> 下面的 in 和 [] 两种操作是非常高效的操作. --> 字典的背后使用了 哈希表.
#    1) 使用 in 来判定某个 key 是否在字典中存在, 与 value 无关
a = {
    'id': 1,
    'name': 'java'
}
# in 只是判定 key, 与 value 无关
print('id' in a)  # True
print('id' not in a)  # False
print('classId' in a)  # False
print('classId' not in a)  # True


#    2) 使用 [] 来根据 key 获取到 value,
a = {
    'id': 1,
    'name': 'java',
    13: 14
}

def MyError(string):
    if string not in a:
        raise KeyError(f"key: {string} 不存在字典中")

try:
    MyError('id')
    print(a['id'])  # 1

    MyError('name')
    print(a['name'])  # 'java'

    MyError(13)
    print(a[13])  # 14

    MyError(100)
    print(a[100])  # 引发异常
except KeyError as e:
    print("引发异常: ", repr(e))

print("-------------------------------------")
